/*
 *    /||\
 *   / || \
 *  /__||__\
 *   __
 *  \  | UNIVERSIDADE DE PASSO FUNDO
 *   \ | Instituto de Ciências Exatas e Geociências
 *    \| Curso de Ciência da Computação
 * 
 * Trabalho de Conclusão II - 2008/2
 * 
 * Título do trabalho: Paralelização do Solver Intervalar LSS
 * Acadêmico: Alexandre Almeida
 * Orientador: Prof. Dr. Carlos Amaral Hölbig
 * 
 * Módulo: IminusAB.h / IminusAB.cpp
 * Descrição: Implementa a versão paralela do cálculo da operação 8 da Tabela xxx do TCC.
 * 
 */

#ifndef IMINUSAB_H_
#define IMINUSAB_H_

#include "common.h"

using namespace std;
using namespace cxsc;

typedef struct {
	int threadId;
	rmatrix *sliceA;
	rmatrix *b;
	imatrix *sliceC;
	rmatrix *sliceAB;
	int startRowA;
	int endRowA;
} threadArgsIminusAB;

void IminusAB(rmatrix&, rmatrix&, imatrix&, rmatrix&, int, int, int);
void IminusAB(rmatrix&, rmatrix&, int, int);

void partialIminusAB(rmatrix&, rmatrix&, imatrix&, rmatrix&);

void partialIminusAB(rmatrix&, rmatrix&, imatrix&, rmatrix&, int);
void *threadPartialIminusAB(void *);

#endif /*IMINUSAB_H_*/
